<?php

class Model_Post extends \Orm\Model
{
	protected static $_properties = array(
            'id',
            'course_id',
            'teacher_id',
            'university_id',
            'year',
            'description',
            'created_at',
            'updated_at',
            'title',
            'user_id',
            'type_id',
            //'file',
            'slug',
	);

	protected static $_observers = array(
		'Orm\Observer_CreatedAt' => array(
			'events' => array('before_insert'),
			'mysql_timestamp' => false,
		),
		'Orm\Observer_UpdatedAt' => array(
			'events' => array('before_update'),
			'mysql_timestamp' => false,
		),
	);
	protected static $_table_name = 'post';
        
        public static function register_create($factory, $input)
        {
            $val = \Fuel\Core\Validation::forge($factory);
            // validate title
            $val->add('title', 'Tiêu đề')
                    ->add_rule('required')
                    ->add_rule('min_length', 6)
                    ->add_rule('max_length', 255);
            
            // validate description
            $val->add('description', 'Mô tả')
                    ->add_rule('max_length', 1000);
            
            //validate university
//            if($input['university_id'] == '' && $input['university'] != '')
//            {
//                // university not in table university
//                $val->add('university', 'Trường')
//                    ->add_rule('required')
//                    ->add_rule('min_length', 10)
//                    ->add_rule('max_length', 100);
//            }
//            else
//            {
//                // university have in table university
//                $val->add('university_id', 'Trường')
//                    ->add_rule('required');
//            }
            
            //validate course
//            if($input['course_id'] == '' && $input['course'] != '')
//            {
//                // course not in table course
//                $val->add('course', 'Môn học')
//                    ->add_rule('required')
//                    ->add_rule('min_length', 4)
//                    ->add_rule('max_length', 100);
//            }
//            else
//            {
//                // course have in table course
//                $val->add('course_id', 'Môn học')
//                    ->add_rule('required');
//            }
            $val->add('course_id', 'Môn học')
                    ->add_rule('required');
            
            // validate teacher
            if($input['teacher_id'] == '' && $input['teacher'] != '')
            {
                // teacher not in table teacher
                $val->add('teacher', 'Giảng viên')
                    ->add_rule('required')
                    ->add_rule('min_length', 4)
                    ->add_rule('max_length', 32);
            }
            else
            {
                // teacher have in table teacher
                $val->add('teacher_id', 'Giảng viên')
                    ->add_rule('required');
            }
            
            //validate year
            $val->add('year', 'Năm')
                    ->add_rule('required');
            
            // validate type_id
            $val->add('type_id', 'Thể loại')
                    ->add_rule('required');
            
            $val->set_message('required', ':label không được để trống');
            $val->set_message('max_length', ':label không được vượt quá :param:1 ký tự');
            $val->set_message('min_length', ':label không được it hơn :param:1 ký tự');
            return $val;
        }
        
        protected static $_belongs_to = array(
            'users' => array(
                'key_form' => 'user_id',
                'model_to' => 'Model_User',
                'key_to' => 'id'
            ),
            'type' => array(
                'key_form' => 'type_id',
                'model_to' => 'Model_Type',
                'key_to' => 'id'
            ),
            'teacher' => array(
                'key_form' => 'teacher_id',
                'model_to' => 'Model_Teacher',
                'key_to' => 'id',
            ),
            'university' => array(
                'key_form' => 'university_id',
                'model_to' => 'Model_University',
                'key_to' => 'id',
            ),
            'course' => array(
                'key_form' => 'course_id',
                'model_to' => 'Model_Course',
                'key_to' => 'id',
            ),
        );
        
}
